import  axios  from 'axios';
import  router  from '@/router/index';
// 导入提示
import { ElMessage } from 'element-plus'
// 创建axios实例
const request = axios.create({
  baseURL: '/api',
  timeout: 60000,
});

// 添加请求拦截器
request.interceptors.request.use(function (config) {
    // 在发送请求之前，封装token令牌(localStore中有用户的身份信息时，才封装请求头令牌)
    let userInfo = localStorage.getItem('loginUser')
    if(userInfo){
      // 将userInfo转成JSON对象，并获取token
      // JSON.parse()将字符串转成JSON对象
      //存入是键值对的形式
      //stringify是将对象转换成字符串
      // 将用户登录时保存的 token（令牌）添加到请求头中，以便后端进行身份验证。
      config.headers.token=JSON.parse(userInfo).token
    }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
//要用创建的实例来添加拦截器，就是用request来添加
request.interceptors.response.use(function (response) {
  // 对响应数据进行处理，取出响应数据的data数据
    return response.data;
  }, function (error) {
    // 对响应401进行处理
    if(error.response.status === 401){
      router.push('/login');
      ElMessage.error('请重新登录');
    }
    return Promise.reject(error);
  });
//要想在别的模块中引用，请使用export default，将实例导出去出去
// 导出axios实例
export default request;